The management of contact centers requires the co-ordination of various resources such as agents, customers, contacts, queues and applications, and the assignment of resources to one another. For example, an incoming contact may be assigned to an interactive voice response (IVR) application which determines the identity of the customer (who may be represented in a database) and also determines the skillset(s) required to deal with the contact. The contact is typically then assigned to a queue which is serviced by a number of agents whereby it can ultimately be assigned to a suitable agent who is then placed in contact with the customer.
Typically, proprietary mechanisms have been used to manage the contact center resources. Typically, custom-written scripts are used to control the operation of the queues and the assignment of contacts to queues. These methods are not consistent across multiple vendors and nor are they generally compatible with third party standards-based analysis tools.
A significant drawback to conventional contact center management solutions is the relative inflexibility of script-based systems to control the flow of contacts within the contact centers. In particular, such systems are designed by identifying required skillsets, and then writing scripts to manage queues based on the skillsets.
This approach is very inflexible in that if a decision is made that certain skills are outdated or new skills need to be added, or that a number of skills need to be merged, the scripts need to be changed.
Furthermore, the vision of expected traffic patterns which the original scriptwriters may have had may not be optimum. If the reality does not match expectations, scripts can of course be rewritten. However, if the imbalance between queues is not great, then a decision may be taken to live with the original design decisions, which results in ongoing inefficiencies within the contact centers because the design was not optimal.
It is clear, therefore, that static script-based contact center management techniques may not provide the optimum method of managing complex or evolving contact centers.
A further problem with conventional contact center management methods is supervisor interaction with the queuing system can be difficult or clumsy. Supervisors are usually given a one-dimensional view of the contact center and load balancing is carried out by supervisors allocating agents to different queues. It is normally not possible for the supervisor to move contacts around from one queue to another. Relying on supervisors to balance the load across the contact center (by re-allocating agents to queues) results in the efficiency of the contact center being dependent almost entirely on the skill and experience of the supervisors.
The invention provides a method of managing a contact center having a number of agents. The method involves the steps of (a) maintaining a “virtual representation” of the agents of the contact center, in which agents are represented as resources connected to one another based on shared properties; (b) representing a contact as a resource having properties which enable it to be connected to one or more agents, so that the contact can be included in the virtual representation; and (c) assigning the contact to an agent based on the degree of connectedness between the contact and the agents connected directly or indirectly to the contact, and which are also based on the availability of the agents to service the contact.
This method differs fundamentally from the operation of conventional contact centers. Rather than having agents waiting for contacts at the top of a queue (or contacts at the top of a queue waiting for an agent to become free), contacts are entered into a virtual representation of the contact center in which they are connected to one or more agents based on known properties of the agent and of the contact. For example, a typical property allowing connections to be made between a contact and a set of agents would be the skill or skills required to service the contact. Language can similarly provide a connection from a contact to certain agents having the language abilities to deal with the contact. Another property generating a possible connection with one or more agents might be specifying which agents had dealt with that particular customer and/or that customer's organisation in the past. Where a number of connections are made between a contact and an agent, then the connection is strengthened. The various properties can be weighted relative to one another, and there can be absolute requirements, e.g. a shared language might be mandatory.
This method therefore allows the assignment of contacts to agents based on the degree of connectedness between the contacts and the agents of the contact center. The assignment of contacts is also based on the availability of agents and so if the most strongly connected agent is unavailable, a mechanism is in place for determining which agent might be next best suited to deal with the contact.
Preferably, the agents are represented in the virtual representation as resources whose shared properties include shared skills, and the contact properties can include skills required to service the contact properly, thereby enabling the contact to be entered in the virtual representation by creating connections with agents having skills matching those specified for the contact.
It will be appreciated that in the majority of contact center implementations, using skills to match agents with contacts remains one of the most important criteria for assigning contacts to agents. However, unlike current systems a queue is not needed. For example, in a conventional contact center if a contact is determined to require the skillset “English language video game sales” it is then placed in a queue dedicated to this skillset. In contrast, the present method allows the contact to have connections to agents who specialise in sales, and agents who have knowledge of video games, thereby potentially allowing a larger group of agents to service the contact but still preferentially ensuring that the best suited available agent is used. In a well designed system, such a contact may be most strongly connected with all agents having the specialisation of video game sales, but a relatively good connection might nevertheless be made with agents who have the specialisation of video game console sales, since such agents might be determined to share a good deal in common with the preferred agents (using the “friend of a friend” model which the Resource Description Framework allows).
Accordingly, in preferred embodiments, the degree of connectedness between the contact and agents is determined as a function of the number of connections between the contact and the agents.
Further preferably, the degree of connectedness between the contact and agents is determined as a function of the strength of connections between the contact and the agents where each connection has an assigned weight.
Preferably, the method also involves the step of presenting a visual representation of the virtual representation to enable human visualisation and/or interaction with the virtual representation of the contact center entities.
As will be further explained below, instead of a conventional statistical interface with contact centers (current wait time, number of agents idle, etc.) and the conventional queue-based representation available to supervisors, the current system can provide a visual representation of the virtual representation of relationships between the various contact center entities, and thus provides an overview at a glance of the connections between agents and contacts. Clustering can be easily identified in this way (possibly indicating an overload in one area of the contact center) and optionally, the supervisor can interact with the visual representation to influence the properties of resources, thereby influencing the connectedness between parties and reducing clustering.
Preferably, the method further includes the step of analysing the virtual representation to identify conditions where the number of connections to a given resource exceed a threshold.
Accordingly, much of the contact center management can be automated by analysing the number of connections to a given resource and determining when a resource is overburdened.
Further preferably, the method includes the step of automatically modifying one or more resources connected to the given resource to thereby influence the connections to the given resource.
In preferred embodiments, the connections between agent resources and contact resource are dynamically and automatically updated based on the current properties of the resources.
In this way, rather than simply being able to shift agents between queues, a supervisor can modify the properties of agents, or of contacts, or the strength or weighting to be assigned to certain types of connections, and in this way the model can be dynamically updated, to influence the allocation of contacts within the contact center.
Preferably, the agent and contact resources and properties conform to the Resource Description Framework. (The Resource Description Framework is a standard of the World Wide Web Consortium or W3C).
The agent resource properties may typically be selected from one or more of (but not limited to): skills, languages, location, prior transfers to or from other agents, and prior contacts with customers.
The contact resource properties may typically be selected from one or more of (but not limited to): skills, languages, location, prior contacts with agents, and customer identity.
The invention further provides a contact center management system comprising:                an agent memory area storing a set of resources representing the agents of the contact center and properties thereof;        a contact memory area storing a resource representing a contact having properties enabling connections to be made to agent resources;        a processor operable to dynamically maintain a virtual representation of the agent resources in which the agents resources are connected to one another based on shared properties;        the processor further being operable to add the contact resource to the virtual representation and connect the contact resource to one or more agents based on the properties of the contact resource and the agent resources; and                    the processor assigning the contact to an agent based on the degree of connectedness between the contact and agents connected directly or indirectly to the contact and on the availability of the agents to service the contact.                        
In another aspect, the invention provides a computer program product comprising machine readable instructions which when executed in a contact center management system are effective to cause the system to:                maintain a virtual representation of agents of the contact center in which agents are represented as resources connected to one another based on shared properties;        represent a contact as a resource having properties which enable it to be connected to one or more agents, whereby the contact can be entered in the virtual representation; and        assign the contact to an agent based on the degree of connectedness between the contact and agents connected directly or indirectly to the contact and on the availability of the agents to service the contact        